Mobile phone authentication in WiFi coverage

ABSTRACT

A method of providing a wireless communication link to a mobile communication device. The method comprises providing a first wireless communication link by a first WiFi access point (AP) to the mobile device, where the first AP broadcasts a first SSID, establishing a communication session between the mobile device and a destination communication device via the first wireless communication link, determining locations of the mobile device by a server, and, based on a change of the locations of the mobile device, sending a WiFi handoff command by the server to a second WiFi AP, where the WiFi handoff command comprises authentication credentials of the mobile device. The method further comprises providing a second wireless communication link based on the authentication credentials by a second AP to the mobile device, where the second AP broadcasts the first SSID and the communication session is continued over the second wireless communication link.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of and claims priority under 35 U.S.C.§ 120 to U.S. patent application Ser. No. 15/990,422, filed on May 25,2018, entitled “Mobile Phone Authentication in WiFi Coverage,” byDhananjay Indurkar, et al., which is incorporated herein by reference inits entirety for all purposes.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not applicable.

REFERENCE TO A MICROFICHE APPENDIX

Not applicable.

BACKGROUND

Mobile communication devices are typically associated with a serviceplan offered by a particular wireless communication service provider.When the mobile device is outside of the wireless coverage area of thenetwork infrastructure of the wireless communication service provider,the mobile device may not be capable of conducting communicationactivity, although there may be wireless coverage available at thatlocation that is provided by other wireless communication serviceproviders. Some wireless communication service providers make roamingagreements with alternative service providers such that a wirelesscommunication service provider can obtain a wireless link from the otherwireless communication service provider. Such cellular roaming mayinvolve the mobile communication device authenticating with the cellsite of the other wireless communication service provider (i.e., thecell site of the roaming network provider) based on wireless credentialsstored in a SIM card of the mobile communication device and provided tothe cell site. Said in other words, the cell site may authenticate theroaming mobile communication device with the roaming network providerand not back in the home network.

SUMMARY

In an embodiment, a method of providing a wireless communication link toa mobile communication device is disclosed. The method comprisesproviding a first wireless communication link by a first WiFi accesspoint to the mobile communication device, where the first WiFi accesspoint broadcasts a first service set identifier (SSID), establishing acommunication session between the mobile communication device and adestination communication device via the first wireless communicationlink, and determining locations of the mobile communication device by aserver computer. The method further comprises, based on a change of thelocations of the mobile communication device, sending a WiFi handoffcommand by the server computer to a second WiFi access point, where theWiFi handoff command comprises authentication credentials 124 of themobile communication device and providing a second wirelesscommunication link based on the authentication credentials by a secondWiFi access point to the mobile communication device, where the secondWiFi access point broadcasts the first SSID and the communicationsession is continued over the second wireless communication link,whereby the mobile communication device is provided mobilecommunications connectivity by a plurality of WiFi access points.

In another embodiment, a method of providing a wireless communicationlink to a mobile communication device is disclosed. The method comprisesproviding a first wireless communication link by a first WiFi accesspoint to the mobile communication device, where the first WiFi accesspoint broadcasts a first service set identifier (SSID), receiving mobiledevice credentials by the first WiFi access point via the first wirelesscommunication link from the mobile communication device, sending themobile device credentials by the first WiFi access point to a server ina first communication network, and determining by the server that themobile device credentials are associated with a second communicationnetwork. The method further comprises the server executing anauthentication method of an application programming interface (API)provided by the second communication network, where executing theauthentication method comprises providing the mobile device credentialsto the second communication network, receiving authenticationconfirmation by the server from the API provided by the secondcommunication network, and creating authentication credentials for themobile communication device by the server based on the authenticationconfirmation. The method further comprises sending the authenticationcredentials by the server to the first WiFi access point, receiving theauthentication credentials by the first WiFi access point from theserver, and, in response to receiving the authentication credentials,establishing a communication session between the mobile communicationdevice and a destination communication device by the first WiFi accesspoint via the first wireless communication link.

In yet another embodiment, a method of providing a wirelesscommunication link to a mobile communication device is disclosed. Themethod comprises providing a first wireless communication link by afirst WiFi access point to the mobile communication device, establishinga communication session between the mobile communication device and adestination communication device via the first wireless communicationlink, and determining locations of the mobile communication device by aserver computer. The method further comprises, based on a change of thelocations of the mobile communication device, sending a WiFi-to-cellularhandoff command by the server computer to a cell site, where theWiFi-to-cellular handoff command comprises authentication credentials ofthe mobile communication device and providing a second wirelesscommunication link based on the authentication credentials by the cellsite to the mobile communication device, where the communication sessionis continued over the second wireless communication link.

These and other features will be more clearly understood from thefollowing detailed description taken in conjunction with theaccompanying drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present disclosure, referenceis now made to the following brief description, taken in connection withthe accompanying drawings and detailed description, wherein likereference numerals represent like parts.

FIG. 1 is a block diagram of a communication system according to anembodiment of the disclosure.

FIG. 2 is an illustration of a series of wireless communication linksprovided to a same mobile communication device as it moves, according toan embodiment of the disclosure.

FIG. 3 is a flow chart of a method according to an embodiment of thedisclosure.

FIG. 4A and FIG. 4B is a flow chart of another method according to anembodiment of the disclosure.

FIG. 5 is a flow chart of yet another method according to an embodimentof the disclosure.

FIG. 6 is a block diagram of a computer system according to anembodiment of the disclosure.

DETAILED DESCRIPTION

It should be understood at the outset that although illustrativeimplementations of one or more embodiments are illustrated below, thedisclosed systems and methods may be implemented using any number oftechniques, whether currently known or not yet in existence. Thedisclosure should in no way be limited to the illustrativeimplementations, drawings, and techniques illustrated below, but may bemodified within the scope of the appended claims along with their fullscope of equivalents.

The present disclosure teaches providing seamless communicationsconnectivity to mobile communication devices when outside of customarywireless communication coverage. For example, a user may travel to aforeign country where the radio frequency bands of his or her mobilecommunication device are incompatible with the local cellular radiofrequency bands. For example, a user may be inside a building, such as alarge airport, where cellular coverage is unavailable. In this case, aWiFi radio transceiver of the mobile communication device may establisha wireless communication link with a first WiFi access point, where thefirst WiFi access point has a first service set identifier (SSID). Themobile communication device may use the wireless communication link toestablish a communication session, for example a telephone voice call ora data session. As the user moves, for example walks down a corridor ofan airport to reach his or her gate, the wireless communication link maybe handed off from the first WiFi access point to a second WiFi accesspoint, where the second WiFi access point also has the first SSID.

Coordination of the WiFi handoff from the first WiFi access point to thesecond WiFi access point may be coordinated by a server computer thattracks position and/or WiFi signal strength data associated with themobile communication device and triggers the WiFi handoff. As part ofthis coordination effort, the server computer commands the second WiFiaccess point to communicate on the first SSID and further conveyscommunication session state information associated with the mobilecommunication device to the second WiFi access point, whereby the secondWiFi access point is able to support the on-going call with the mobilecommunication device without an interruption. It is understood that thesecond WiFi access point may continue supporting on-going calls withother mobile communication devices based on one or more different SSIDs.For the user of the mobile communication device, the WiFi handoff fromthe first WiFi access point to the second WiFi access point and from thesecond WiFi access point to a third WiFi access point and so on istransparent. Said in other words, the user does not need to establish anew WiFi connection and the communication session does not terminate butcontinues uninterrupted and seamless. This provides improvedfunctionality for users, who do not need to repeatedly establishcommunications with different WiFi access points as they move through anairport or other area. Or, alternatively, this avoids the users losingcommunication service and having to repeatedly re-establish acommunication session. This system, further, can reduce the processingburden on WiFi access points in that they need not perform a full-upWiFi connection process (e.g., conduct authorization steps and/orauthentication steps) when handoffs occur—rather the session stateinformation is passed to it without having to be regenerated.

The WiFi access points that participate in the WiFi communicationhand-off session described above may each be associated with a SSID thatit broadcasts for initiating a communication link with an unconnectedmobile communication device (e.g., a mobile communication device that isnot connected in an on-going WiFi communication session). WiFi accesspoints that participate in such a WiFi hand-off network may be assigneddifferent SSIDs for broadcast purposes.

When the first WiFi access point initially interacts with the mobilecommunication device, the mobile communication device providesidentifying information to the first WiFi access point. This identifyinginformation may comprise a unique hardware identifier such as a mobileequipment identity (MEID) or an electronic serial number (ESN) or someother hardware identifier. This identifying information may compriseother information such as a phone number of the device. This identifyinginformation may comprise an identity of a home carrier network or homewireless communication service provider with whom the mobilecommunication device has a wireless communication service subscription.The first WiFi access point provides the identifying information to theserver computer.

The server computer determines a home wireless communication serviceprovider with whom the mobile communication device has a servicesubscription. To authenticate the wireless communication device forwireless communication service, the server computer invokes a method ofan application programming interface (API) of a computer system operatedby the home service provider, including the identifying information inthe method call. If the method call authenticates the wirelesscommunication device, the method returns authentication credentials forthe device comprising authentication information, authentication keys,and/or an authentication token to the server computer. If the device isauthenticated successfully, the server sends the authenticationcredentials to the first WiFi access point, and the first WiFi accesspoint provides a communication connection to the mobile communicationdevice. If the method call fails, the server informs the first WiFiaccess point, and the first WiFi access point refuses the communicationconnection to the mobile communication device. When the serverdetermines to handoff wireless coverage from the first WiFi access pointto the second WiFi access point, the server sends a WiFi handoff commandto the second WiFi access point with the authentication credentials andsends a WiFi drop command to the first WiFi access point. It is notedthat the server can handoff the communication connection from a WiFiaccess point to a customary cell site or to a picocell site in the sameseamless manner, passing the authentication credentials in the handoffcommand.

This method of providing wireless communication links and wirelesscommunication service to mobile communication devices can be provided asan alternative to traditional roaming. This method of providing wirelesscommunication links and wireless communication service to mobilecommunication devices can be provided to mobile communication devicesfrom foreign countries whose radio frequency bands are not compatiblewith cellular radio bands in the United States, though in this case themobile communication device may not be handed off from a WiFi accesspoint to a cell site.

Turning now to FIG. 1, a communication system 100 is described. In anembodiment, system 100 comprises a mobile communication device 102 (userequipment—UE) having a WiFi radio transceiver 104, a WiFi access point(AP) 106, a network 108, and a destination communication device 110. Thesystem 100 further comprises a mobility server 116 executing a mobilityapplication 118, and one or more home carrier computer systems. Themobile communication device 102 may be a mobile phone, a smart phone, apersonal digital assistant (PDA), a headset computer, a wearablecomputer, a laptop computer, a notebook computer, a tablet computer, orother mobile communication device. In some embodiments, the mobilecommunication device 102 comprises a cellular radio transceiver 126which may establish a wireless communication link with a cell site 128according to a long term evolution (LTE), a code division multipleaccess (CDMA), a global system for mobile communication (GSM), or aworldwide interoperability for microwave access (WiMAX) wirelesscommunication protocol. In some embodiments, the mobile communicationdevice 102 may comprise a cellular radio transceiver 126, but it may beunable to establish a communication link with the cell site 128 becausethe frequency bands supported by the cellular radio transceiver 126 maybe incompatible with the frequency bands of the cell site 128, as forexample when the mobile communication device 102 is configured for usein a foreign country and the cell site 128 is configured for use in theUnited States. The network 108 comprises one or more public networks,one or more private networks, or a combination thereof.

In an embodiment, the mobile communication device 102 further comprisesa memory 111, and the memory 111 stores a device identity 112 and/orother information that is unique to the device 102 or to a subscriptionaccount associated with the device 102. In an embodiment, the deviceidentity 112 may be stored in something other than the memory 111 suchas some other electronically readable media. The WiFi radio transceiver104 may establish a wireless link with the WiFi AP 106 and provide thedevice identity 112 to the WiFi AP 106. For example, the WiFi radiotransceiver 104 may send a communication connection request message tothe WiFi AP 106, where the connection request message embeds orotherwise carries the device identity 112. In an embodiment, thecommunication connection request message may identify the communicationrequested by the mobile communication device 102 to be something otherthan a customary device-WiFi communication, for example the connectionrequest message may identify a seamless communication session type ofcommunication.

The WiFi AP 106 may respond to the connection request message by sendinga authentication request message along with the device identity 112 tothe mobility application 118 executing on the mobility server 116. Themobility application 118 determines a home carrier network associatedwith the mobile communication device 102 (i.e., the wirelesscommunication service provider with which the mobile communicationdevice 102 has a service subscription) based on the device identity 112.The mobility application 118 then invokes an authentication method of anapplication programming interface (API) provided by the home carriercomputer system 120 provided by that home carrier network, providingdevice identity 112 and optionally a location of the device 102 in themethod call. In an embodiment, the mobile communication device 102 is aforeign device and the home computer carrier computer system 120 is aforeign communication network. In another embodiment, the device 102 isa United States-based device and the home computer carrier computersystem 120 is a United States-based communication network. The homecarrier computer system 120 uses the device identity 112 to determine ifthe mobile communication device 102 has a subscription account andwhether the device 102 is authorized to use the seamless communicationsession type of communication. If the device is authorized,authorization credentials are returned by the home carrier computer 120to the mobility application 118, and the mobility application 118 storesthe authentication credentials 122 in a non-transitory memory of themobility server 116.

The WiFi AP 106 may then provide a communication session orcommunication connection to the mobile communication device 102. Thedevice 102 may use the communication session to communicate to thedestination communication device 110, such as to another mobilecommunication device to complete a voice call, to a web server todownload or upload data, to a computer system, or to another device. Thecommunication session or communication channel may be a vehicle overwhich a plurality of data messages pass over an extended time duration.In an embodiment, the communication session or communication channel maybe provided as a transport control protocol (TCP) session or connection.

As the mobile communication device 102 moves, the mobility application118 monitors this movement and evaluates the desirability of handing offthe wireless link between the device 102 and the WiFi AP 106 to adifferent WiFi AP or to the cell site 128. The mobility application 118may learn of the location of the mobile communication device 102 byreceiving self-location information from the device 102 via the WiFi AP106. Alternatively, the mobility application 118 may locate the mobilecommunication device 102 using trilateration techniques (e.g., comparingsignal strengths received by a plurality of WiFi APs themselves locatedat known locations and determining location of the device 102 byanalyzing these signal strengths in the context of the known locationsof the WiFi APs).

Turning now to FIG. 2, migration of the communication session from afirst WiFi AP 106 to other WiFi APs or to the cell site 128 isdescribed. The mobile communication device 102 is shown at a firstlocation where it is labeled 102 a, a second location labeled 102 b, athird location labeled 102 c, and a fourth location labeled 102 d. Thefirst WiFi AP 106, the second WiFi AP 140, and the third WiFi AP 142 allemploy the same SSID. In an embodiment, all WiFi APs that support thebehavior described herein, for example all WiFi APs within the UnitedStates that support the described behavior, share the same single SSID.Alternatively, in an embodiment, all WiFi APs that support the behaviordescribed herein and that are located within a contiguous area, forexample within the same airport, all share the same single SSID. The useof the same SSID promotes seamless and transparent handoff of acommunication session or communication connection among a plurality ofdifferent WiFi APs.

At the first location, the device 102 is provided a wirelesscommunication link by the first WiFi AP 106. The device 102 mayestablish a communication session or communication connection via thefirst WiFi AP 106 and the network 108 to the destination communicationdevice 110. As the mobile communication device 102 moves, for example asa user of the device 102 walks in an airport or other location, themobility application 118 may send a handoff command message along withthe authentication credential 122 for the device 102 to the second WiFiAP 140. The second WiFi AP 140 provides a wireless link to the mobilecommunication device 102, and the first WiFi AP 106 takes down itswireless link to the mobile communication device 102, for example inresponse to receiving a link release command message from the mobilityapplication 118.

As the mobile communication device 102 continues to move from location102 b to 102 c, the mobility application 118 may send a handoff commandmessage along with the authentication credential 122 to the third WiFiAP 142. The third WiFi AP 142 provides a wireless link to the mobilecommunication device 102 based on receiving the authenticationcredential 122 in the handoff command message from the mobilityapplication 118, and the second WiFi AP 140 takes down its wireless linkto the mobile communication device 102, for example in response toreceiving a link release command message from the mobility application118.

In an embodiment (i.e., in an embodiment of the device 102 in which thecellular radio transceiver 126 is able to communicate on at least one ofthe frequency bands supported by the cell site 128), as the mobilecommunication device 102 continues to move from location 102 c tolocation 102 d, the mobility application 118 may send a handoff commandmessage along with the authentication credential 122 to the cell site128. The cell site 128 provides a cellular wireless link to the mobilecommunication device 102 based on receiving the authenticationcredential 122 in the handoff command message from the mobilityapplication 118. It is noted that the device 102 does not authenticatedirectly with the cell site 128 and does not provide information fromits SIM card to the cell site 128. The third WiFi AP 142 takes down itswireless link to the mobile communication device 102, for example inresponse to receiving a link release command message from the mobilityapplication 118. In some embodiments (i.e., in an embodiment of thedevice 102 in which the cellular radio transceiver 126 is not able tocommunicate on any of the frequency bands supported by the cell site128), the communication session or communication connection may be takendown or dropped as the mobile communication device 102 moves away fromthe wireless coverage of the third WiFi AP 142.

In this way, the mobile communication device 102 is provided anuninterrupted communication session or communication connection whilemigrating seamlessly from the first WiFi AP 106 to the second WiFi AP140, from the second WiFi AP 140 to the third WiFi AP 142, and,optionally, from the third WiFi AP 142 to the cell site 128, withoutre-authenticating, and without providing SIM information.

Turning now to FIG. 3, a method 200 is described. At block 202, a firstWiFi access point provides a first wireless communication link to themobile communication device, where the first WiFi access pointbroadcasts a first service set identifier (SSID). At block 204,establish a communication session between the mobile communicationdevice and a destination communication device via the first wirelesscommunication link

At block 206, a server computer determines locations of the mobilecommunication device. At block 208, based on a change of the locationsof the mobile communication device, the server computer sends a WiFihandoff command to a second WiFi access point, where the WiFi handoffcommand comprises authentication credentials of the mobile communicationdevice.

At block 210, a second WiFi access point provides a second wirelesscommunication link based on the authentication credentials to the mobilecommunication device, where the second WiFi access point broadcasts thefirst SSID and the communication session is continued over the secondwireless communication link.

The method 200 may further comprise, based on a change of the locationsof the mobile communication device, sending a WiFi handoff command bythe server computer to a third WiFi access point, where the WiFi handoffcommand comprises authentication credentials of the mobile communicationdevice and providing a third wireless communication link based on theauthentication credentials by a third WiFi access point to the mobilecommunication device, where the third WiFi access point broadcasts thefirst SSID and the communication session is continued over the thirdwireless communication link.

Turning now to FIG. 4A and FIG. 4B, a method 220 is described. At block222, a first WiFi access point provide a first wireless communicationlink to the mobile communication device, where the first WiFi accesspoint broadcasts a first service set identifier (SSID). At block 224,the first WiFi access point receives mobile device credentials via thefirst wireless communication link from the mobile communication device.At block 226, the first WiFi access point sends the mobile devicecredentials to a server in a first communication network.

At block 228, the server determines that the mobile device credentialsare associated with a second communication network. At block 230, theserver executes an authentication method of an application programminginterface (API) provided by the second communication network, whereexecuting the authentication method comprises providing the mobiledevice credentials to the second communication network

At block 232, the server receives authentication confirmation from theAPI provided by the second communication network. At block 234, theserver creates authentication credentials for the mobile communicationdevice based on the authentication confirmation. At block 236, theserver sends the authentication credentials to the first WiFi accesspoint.

At block 238, the first WiFi access point receives the authenticationcredentials from the server. At block 240, in response to receiving theauthentication credentials, the first WiFi access point establishes acommunication session between the mobile communication device and adestination communication device via the first wireless communicationlink.

Turning now to FIG. 5, a method 250 is described. At block 252, A firstWiFi access point provides a first wireless communication link to themobile communication device, where the first WiFi access pointbroadcasts a first service set identifier (SSID). At block 254,establish a communication session between the mobile communicationdevice and a destination communication device via the first wirelesscommunication link. At block 256, a server computer determines locationsof the mobile communication device.

At block 258, based on a change of the locations of the mobilecommunication device, the server computer sends a WiFi-to-cellularhandoff command to a cell site, where the WiFi handoff command comprisesauthentication credentials of the mobile communication device. At block260, the cell site provides a second wireless communication link basedon the authentication credentials to the mobile communication device,where the communication session is continued over the second wirelesscommunication link and the cell site provides the second wirelesscommunication link according to one of a long term evolution (LTE), acode division multiple access (CDMA), a global system for mobilecommunication (GSM), or a worldwide interoperability for microwaveaccess (WiMAX) wireless communication protocol.

In an embodiment, the method 250 further comprises, based on a change ofthe locations of the mobile communication device, sending a WiFi handoffcommand by the server computer to a second WiFi access point, where theWiFi handoff command comprises authentication credentials of the mobilecommunication device and providing a third wireless communication linkbased on the authentication credentials by a second WiFi access point tothe mobile communication device, where the second WiFi access pointbroadcasts the first SSID and the communication session is continuedover the third wireless communication link. The server computer mayfurther send a wireless link release command to the cell site.

FIG. 6 illustrates a computer system 380 suitable for implementing oneor more embodiments disclosed herein. The computer system 380 includes aprocessor 382 (which may be referred to as a central processor unit orCPU) that is in communication with memory devices including secondarystorage 384, read only memory (ROM) 386, random access memory (RAM) 388,input/output (I/O) devices 390, and network connectivity devices 392.The processor 382 may be implemented as one or more CPU chips.

It is understood that by programming and/or loading executableinstructions onto the computer system 380, at least one of the CPU 382,the RAM 388, and the ROM 386 are changed, transforming the computersystem 380 in part into a particular machine or apparatus having thenovel functionality taught by the present disclosure. It is fundamentalto the electrical engineering and software engineering arts thatfunctionality that can be implemented by loading executable softwareinto a computer can be converted to a hardware implementation bywell-known design rules. Decisions between implementing a concept insoftware versus hardware typically hinge on considerations of stabilityof the design and numbers of units to be produced rather than any issuesinvolved in translating from the software domain to the hardware domain.Generally, a design that is still subject to frequent change may bepreferred to be implemented in software, because re-spinning a hardwareimplementation is more expensive than re-spinning a software design.Generally, a design that is stable that will be produced in large volumemay be preferred to be implemented in hardware, for example in anapplication specific integrated circuit (ASIC), because for largeproduction runs the hardware implementation may be less expensive thanthe software implementation. Often a design may be developed and testedin a software form and later transformed, by well-known design rules, toan equivalent hardware implementation in an application specificintegrated circuit that hardwires the instructions of the software. Inthe same manner as a machine controlled by a new ASIC is a particularmachine or apparatus, likewise a computer that has been programmedand/or loaded with executable instructions may be viewed as a particularmachine or apparatus.

Additionally, after the system 380 is turned on or booted, the CPU 382may execute a computer program or application. For example, the CPU 382may execute software or firmware stored in the ROM 386 or stored in theRAM 388. In some cases, on boot and/or when the application isinitiated, the CPU 382 may copy the application or portions of theapplication from the secondary storage 384 to the RAM 388 or to memoryspace within the CPU 382 itself, and the CPU 382 may then executeinstructions that the application is comprised of. In some cases, theCPU 382 may copy the application or portions of the application frommemory accessed via the network connectivity devices 392 or via the I/Odevices 390 to the RAM 388 or to memory space within the CPU 382, andthe CPU 382 may then execute instructions that the application iscomprised of. During execution, an application may load instructionsinto the CPU 382, for example load some of the instructions of theapplication into a cache of the CPU 382. In some contexts, anapplication that is executed may be said to configure the CPU 382 to dosomething, e.g., to configure the CPU 382 to perform the function orfunctions promoted by the subject application. When the CPU 382 isconfigured in this way by the application, the CPU 382 becomes aspecific purpose computer or a specific purpose machine.

The secondary storage 384 is typically comprised of one or more diskdrives or tape drives and is used for non-volatile storage of data andas an over-flow data storage device if RAM 388 is not large enough tohold all working data. Secondary storage 384 may be used to storeprograms which are loaded into RAM 388 when such programs are selectedfor execution. The ROM 386 is used to store instructions and perhapsdata which are read during program execution. ROM 386 is a non-volatilememory device which typically has a small memory capacity relative tothe larger memory capacity of secondary storage 384. The RAM 388 is usedto store volatile data and perhaps to store instructions. Access to bothROM 386 and RAM 388 is typically faster than to secondary storage 384.The secondary storage 384, the RAM 388, and/or the ROM 386 may bereferred to in some contexts as computer readable storage media and/ornon-transitory computer readable media.

I/O devices 390 may include printers, video monitors, liquid crystaldisplays (LCDs), touch screen displays, keyboards, keypads, switches,dials, mice, track balls, voice recognizers, card readers, paper tapereaders, or other well-known input devices.

The network connectivity devices 392 may take the form of modems, modembanks, Ethernet cards, universal serial bus (USB) interface cards,serial interfaces, token ring cards, fiber distributed data interface(FDDI) cards, wireless local area network (WLAN) cards, radiotransceiver cards that promote radio communications using protocols suchas code division multiple access (CDMA), global system for mobilecommunications (GSM), long-term evolution (LTE), worldwideinteroperability for microwave access (WiMAX), near field communications(NFC), radio frequency identity (RFID), and/or other air interfaceprotocol radio transceiver cards, and other well-known network devices.These network connectivity devices 392 may enable the processor 382 tocommunicate with the Internet or one or more intranets. With such anetwork connection, it is contemplated that the processor 382 mightreceive information from the network, or might output information to thenetwork in the course of performing the above-described method steps.Such information, which is often represented as a sequence ofinstructions to be executed using processor 382, may be received fromand outputted to the network, for example, in the form of a computerdata signal embodied in a carrier wave.

Such information, which may include data or instructions to be executedusing processor 382 for example, may be received from and outputted tothe network, for example, in the form of a computer data baseband signalor signal embodied in a carrier wave. The baseband signal or signalembedded in the carrier wave, or other types of signals currently usedor hereafter developed, may be generated according to several methodswell-known to one skilled in the art. The baseband signal and/or signalembedded in the carrier wave may be referred to in some contexts as atransitory signal.

The processor 382 executes instructions, codes, computer programs,scripts which it accesses from hard disk, floppy disk, optical disk(these various disk based systems may all be considered secondarystorage 384), flash drive, ROM 386, RAM 388, or the network connectivitydevices 392. While only one processor 382 is shown, multiple processorsmay be present. Thus, while instructions may be discussed as executed bya processor, the instructions may be executed simultaneously, serially,or otherwise executed by one or multiple processors. Instructions,codes, computer programs, scripts, and/or data that may be accessed fromthe secondary storage 384, for example, hard drives, floppy disks,optical disks, and/or other device, the ROM 386, and/or the RAM 388 maybe referred to in some contexts as non-transitory instructions and/ornon-transitory information.

In an embodiment, the computer system 380 may comprise two or morecomputers in communication with each other that collaborate to perform atask. For example, but not by way of limitation, an application may bepartitioned in such a way as to permit concurrent and/or parallelprocessing of the instructions of the application. Alternatively, thedata processed by the application may be partitioned in such a way as topermit concurrent and/or parallel processing of different portions of adata set by the two or more computers. In an embodiment, virtualizationsoftware may be employed by the computer system 380 to provide thefunctionality of a number of servers that is not directly bound to thenumber of computers in the computer system 380. For example,virtualization software may provide twenty virtual servers on fourphysical computers. In an embodiment, the functionality disclosed abovemay be provided by executing the application and/or applications in acloud computing environment. Cloud computing may comprise providingcomputing services via a network connection using dynamically scalablecomputing resources. Cloud computing may be supported, at least in part,by virtualization software. A cloud computing environment may beestablished by an enterprise and/or may be hired on an as-needed basisfrom a third party provider. Some cloud computing environments maycomprise cloud computing resources owned and operated by the enterpriseas well as cloud computing resources hired and/or leased from a thirdparty provider.

In an embodiment, some or all of the functionality disclosed above maybe provided as a computer program product. The computer program productmay comprise one or more computer readable storage medium havingcomputer usable program code embodied therein to implement thefunctionality disclosed above. The computer program product may comprisedata structures, executable instructions, and other computer usableprogram code. The computer program product may be embodied in removablecomputer storage media and/or non-removable computer storage media. Theremovable computer readable storage medium may comprise, withoutlimitation, a paper tape, a magnetic tape, magnetic disk, an opticaldisk, a solid state memory chip, for example analog magnetic tape,compact disk read only memory (CD-ROM) disks, floppy disks, jump drives,digital cards, multimedia cards, and others. The computer programproduct may be suitable for loading, by the computer system 380, atleast portions of the contents of the computer program product to thesecondary storage 384, to the ROM 386, to the RAM 388, and/or to othernon-volatile memory and volatile memory of the computer system 380. Theprocessor 382 may process the executable instructions and/or datastructures in part by directly accessing the computer program product,for example by reading from a CD-ROM disk inserted into a disk driveperipheral of the computer system 380. Alternatively, the processor 382may process the executable instructions and/or data structures byremotely accessing the computer program product, for example bydownloading the executable instructions and/or data structures from aremote server through the network connectivity devices 392. The computerprogram product may comprise instructions that promote the loadingand/or copying of data, data structures, files, and/or executableinstructions to the secondary storage 384, to the ROM 386, to the RAM388, and/or to other non-volatile memory and volatile memory of thecomputer system 380.

In some contexts, the secondary storage 384, the ROM 386, and the RAM388 may be referred to as a non-transitory computer readable medium or acomputer readable storage media. A dynamic RAM embodiment of the RAM388, likewise, may be referred to as a non-transitory computer readablemedium in that while the dynamic RAM receives electrical power and isoperated in accordance with its design, for example during a period oftime during which the computer system 380 is turned on and operational,the dynamic RAM stores information that is written to it. Similarly, theprocessor 382 may comprise an internal RAM, an internal ROM, a cachememory, and/or other internal non-transitory storage blocks, sections,or components that may be referred to in some contexts as non-transitorycomputer readable media or computer readable storage media.

While several embodiments have been provided in the present disclosure,it should be understood that the disclosed systems and methods may beembodied in many other specific forms without departing from the spiritor scope of the present disclosure. The present examples are to beconsidered as illustrative and not restrictive, and the intention is notto be limited to the details given herein. For example, the variouselements or components may be combined or integrated in another systemor certain features may be omitted or not implemented.

Also, techniques, systems, subsystems, and methods described andillustrated in the various embodiments as discrete or separate may becombined or integrated with other systems, modules, techniques, ormethods without departing from the scope of the present disclosure.Other items shown or discussed as directly coupled or communicating witheach other may be indirectly coupled or communicating through someinterface, device, or intermediate component, whether electrically,mechanically, or otherwise. Other examples of changes, substitutions,and alterations are ascertainable by one skilled in the art and could bemade without departing from the spirit and scope disclosed herein.

What is claimed is:
 1. A method of providing a wireless communication link to a mobile communication device, comprising: providing a first wireless communication link by a first WiFi access point to the mobile communication device, where the first WiFi access point broadcasts a first service set identifier (SSID); receiving mobile device credentials by the first WiFi access point via the first wireless communication link from the mobile communication device; sending the mobile device credentials by the first WiFi access point to a server in a first communication network; determining by the server that the mobile device credentials are associated with a second communication network; executing an authentication method of an application programming interface (API) provided by the second communication network by the server, where executing the authentication method comprises providing the mobile device credentials to the second communication network; receiving authentication confirmation by the server from the API provided by the second communication network; creating authentication credentials for the mobile communication device by the server based on the authentication confirmation; sending the authentication credentials by the server to the first WiFi access point; receiving the authentication credentials by the first WiFi access point from the server; in response to receiving the authentication credentials, establishing a communication session between the mobile communication device and a destination communication device by the first WiFi access point via the first wireless communication link; determining locations of the mobile communication device by the server; based on a change of the locations of the mobile communication device, sending a WiFi handoff command by the server to a second WiFi access point, where the WiFi handoff command comprises the authentication credentials of the mobile communication device; and providing a second wireless communication link based on the authentication credentials by the second WiFi access point to the mobile communication device, where the second WiFi access point broadcasts the first SSID and the communication session is continued over the second wireless link, and wherein the second WiFi access point broadcasts at least one SSID other than the first SSID while also broadcasting the first SSID.
 2. The method of claim 1, further comprising: based on the change of the locations of the mobile communication device, sending a WiFi handoff command by the server to a third WiFi access point, where the WiFi handoff command to the third WiFi access point comprises the authentication credentials of the mobile communication device; and providing a third wireless communication link based on the authentication credentials by the third WiFi access point to the mobile communication device, where the third WiFi access point broadcasts the first SSID and the communication session is continued over the third wireless communication link.
 3. The method of claim 2, wherein the communication session is continued over the third wireless communication link according to the first SSID.
 4. The method of claim 2, wherein the third WiFi access point broadcasts at least one SSID other than the first SSID while also broadcasting the first SSID.
 5. The method of claim 2, further comprising sending a wireless link release command to the second WiFi access point by the server.
 6. The method of claim 1, wherein the mobile device credentials comprise a mobile device number (MDN).
 7. The method of 6, wherein the mobile device credentials further comprise a mobile equipment identity (MEID).
 8. The method of claim 1, wherein the second communication network is a foreign communication network.
 9. The method of claim 1, wherein the mobile communication device is one of a mobile phone, a smart phone, a personal digital assistant (PDA), a headset computer, a wearable computer, a laptop computer, a notebook computer, or a tablet computer.
 10. The method of claim 1, further comprising: based on a further change of the locations of the mobile communication device, sending a WiFi-to-cellular handoff command by the server to a cell site, where the WiFi-to-cellular handoff command comprises the authentication credentials of the mobile communication device; and providing a third wireless communication link based on the authentication credentials by the cell site to the mobile communication device without the mobile communication device authenticating with the cell site or transmitting data from a subscriber identity module (SIM) card of the mobile communication device to the cell site, where the communication session is continued over the third wireless communication link.
 11. The method of claim 10, wherein the cell site provides the third wireless communication link according to one of a long term evolution (LTE), a code division multiple access (CDMA), a global system for mobile communication (GSM), or a worldwide interoperability for microwave access (WiMAX) wireless communication protocol.
 12. The method of claim 10, further comprising sending a wireless link release command to the second WiFi access point by the server.
 13. The method of claim 10, further comprising: based on a further change of the locations of the mobile communication device, sending a WiFi handoff command by the server to a third WiFi access point, where the WiFi handoff command to the third WiFi access point comprises the authentication credentials of the mobile communication device; and providing a fourth wireless communication link based on the authentication credentials by the third WiFi access point to the mobile communication device, where the third WiFi access point broadcasts the first SSD and the communication session is continued over the fourth wireless communication link.
 14. The method of claim 13, further comprising sending a wireless link release command to the cell site by the server.
 15. The method of claim 13, wherein the communication session is continued over the fourth wireless communication link according to the first SSID.
 16. The method of claim 13, wherein the third WiFi access point broadcasts at least one SSID other than the first SSID while also broadcasting the first SSID.
 17. The method of claim 1, wherein the communication session is continued over the second wireless communication link according to the first SSID.
 18. The method of claim 1, further comprising sending a wireless link release command to the first WiFi access point by the server.
 19. A method of providing a wireless communication link to a mobile communication device, comprising: providing a first wireless communication link by a first WiFi access point to the mobile communication device, where the first WiFi access point broadcasts a first service set identifier (SSID); receiving mobile device credentials by the first WiFi access point via the first wireless communication link from the mobile communication device; sending the mobile device credentials by the first WiFi access point to a server in a first communication network; determining by the server that the mobile device credentials are associated with a second communication network; executing an authentication method of an application programming interface (API) provided by the second communication network by the server, where executing the authentication method comprises providing the mobile device credentials to the second communication network; receiving authentication confirmation by the server from the API provided by the second communication network; sending authentication credentials by the server to the first WiFi access point based on the authentication confirmation; receiving the authentication credentials by the first WiFi access point from the server; in response to receiving the authentication credentials, establishing a communication session between the mobile communication device and a destination communication device by the first WiFi access point via the first wireless communication link; determining locations of the mobile communication device by the server; based on a change of the locations of the mobile communication device, sending a WiFi handoff command by the server to a second WiFi access point, where the WiFi handoff command comprises the authentication credentials of the mobile communication device; and providing a second wireless communication link based on the authentication credentials by the second WiFi access point to the mobile communication device, where the second WiFi access point broadcasts the first SSID and the communication session is continued over the second wireless communication link, and wherein the second WiFi access point broadcasts at least one SSID other than the first SSID while also broadcasting the first SSID. 